package com.egoo.ticket.server.service.impl;//package com.egoo.ews.service.service.impl;
//
//import com.alibaba.fastjson.JSON;
//import com.alibaba.fastjson.JSONArray;
//import com.alibaba.fastjson.JSONObject;
//import com.egoo.ews.service.dao.EwsDepartmentDao;
//import com.egoo.ews.service.dao.EwsUserDao;
//import com.egoo.ews.service.dao.WorkOrderDao;
//import com.egoo.ews.service.dao.WorkOrderTypeNodeDao;
//import com.egoo.ews.service.pojo.dto.SysOptLogDto;
//import com.egoo.ews.service.pojo.dto.SystemMsgDto;
//import com.egoo.ews.service.pojo.entity.*;
//import com.egoo.ews.service.pojo.vo.EwsDepartmentVo;
//import com.egoo.ews.service.pojo.vo.WorkOrderTypeNodeVo;
//import com.egoo.ews.service.service.EripDataSynService;
//import com.egoo.ews.service.service.RoleService;
//import com.egoo.ews.service.service.UserService;
//import com.egoo.ews.service.service.WorkOrderLogService;
//import com.egoo.ews.service.utils.common.*;
//import com.egoo.ews.service.utils.common.RedisUtil;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;
//
//import java.io.IOException;
//import java.net.URLDecoder;
//import java.net.URLEncoder;
//import java.text.SimpleDateFormat;
//import java.utils.*;
//
///**
// * @author：victor_tang
// * @Date ：2020/2/26
// * @Description：ERIP数据同步实现类
// */
//@Service
//@Slf4j
//@Transactional(rollbackFor = Exception.class)
//public class EripDataSynServiceImpl implements EripDataSynService {
//	@Autowired
//	private RoleService roleService;
//	@Autowired
//	private UserService userService;
//	@Autowired
//	private WorkOrderDao workOrderDao;
//	@Autowired
//	private WorkOrderTypeNodeDao workOrderTypeNodeDao;
//	@Autowired
//	private EwsUserDao ewsUserDao;
//	@Autowired
//	private EwsDepartmentDao ewsDepartmentDao;
//	@Autowired
//	private RedisUtil redisUtil;
//	@Autowired
//	private TreeDataHandleUtil treeDataHandleUtil;
//	@Autowired
//	private WorkOrderLogService workOrderLogService;
//
//	/**
//	 * / erip适配器请求路径
//	 */
//	@Value("${server.erip-adapter-url}")
//	private String eripAdapterUrl;
//	/**
//	 * / 发送短信地址
//	 */
//	@Value("${server.msg-send-url}")
//	private String msgSendUrl;
//	@Value("${server.dbsrv-url}")
//	private String dbsrvUrl;
//
//	/**
//	 * redis缓存key失效时间
//	 */
//	public static Long REDIST_EXPIRE_TIME = 864000L;
//
//	SimpleDateFormat sdfTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//
//	/**
//	 * TODO 同步用户及用户角色权限信息
//	 *
//	 * @param user 1
//	 * @author: victor_tang
//	 * @createtime: 2020/2/26 11:58
//	 * @return: com.egoo.ews.service.utils.DBResponse
//	 */
//	@Override
//	public DbResponse userDataSyn(String user) {
//		log.info(user);
//		try {
//			// 主动调取ERIP接口获取角色数据,后期改MQ
//			String allUserStr = getAllUser();
//			if (StringUtils.isEmpty(allUserStr)) {
//				log.info("获取用户信息为空");
//				return new DbResponse(ResponseConstant.RES_FAIL_CODE, "获取用户信息为空");
//			}
//
//			// 解析数据
//			JSONArray dataList = JSONObject.parseObject(allUserStr).getJSONObject("info").getJSONArray("data");
//
//			// 根据userName过滤重复用户数据
//			dataList = filterRepeatData(dataList);
//
//			// 组装用户数据
//			List<EwsUser> ewsUserList = handleUserInfo(dataList);
//
//			List<EwsUserRole> ewsUserRoleList = handleUserRoleRelation(dataList);
//
//			// 批量新增
//			if (ewsUserList != null && ewsUserList.size() > 0 && ewsUserRoleList != null
//					&& ewsUserRoleList.size() > 0) {
//				userService.addUserBatch(ewsUserList, ewsUserRoleList);
//				log.info("系统用户及用户角色关系同步成功！");
//
//			}
//			return new DbResponse(ResponseConstant.RES_SUCCESS_CODE, "系统用户及用户角色关系同步成功！");
//		} catch (Exception e) {
//
//			log.info("系统用户及用户角色关系同步异常：" + e);
//			return new DbResponse(ResponseConstant.RES_FAIL_CODE, "系统用户及用户角色关系同步异常：" + e);
//		}
//	}
//
//	/**
//	 * TODO 根据userName过滤重复用户数据
//	 *
//	 * @param dataList 1
//	 * @author: victor_tang
//	 * @createtime: 2020/2/24 12:22
//	 * @return: com.alibaba.fastjson.JSONArray
//	 */
//	private JSONArray filterRepeatData(JSONArray dataList) {
//		if (dataList == null || dataList.isEmpty()) {
//			return null;
//		}
//		JSONArray returnData = new JSONArray();
//		Set<String> userNameSets = new HashSet<>();
//		for (int i = 0; i < dataList.size(); i++) {
//			JSONObject jsonObject1 = dataList.getJSONObject(i);
//			String userName = jsonObject1.getString("userName");
//			if (StringUtils.isEmpty(userName)) {
//				continue;
//			}
//			if (userNameSets.contains(userName.toLowerCase())) {
//				continue;
//			}
//			userNameSets.add(userName.toLowerCase());
//			returnData.add(jsonObject1);
//		}
//		return returnData;
//	}
//
//	/**
//	 * TODO 同步角色信息
//	 *
//	 * @param role 1
//	 * @author: victor_tang
//	 * @createtime: 2020/2/26 11:58
//	 * @return: com.egoo.ews.service.utils.DBResponse
//	 */
//	@Override
//	public DbResponse roleDataSyn(String role) {
//		log.info(role);
//		try {
//			// 主动调取ERIP接口获取角色数据,后期改MQ
//			String allRoleStr = getAllRole();
//			if (StringUtils.isEmpty(allRoleStr)) {
//				log.info("获取角色信息为空");
//				return new DbResponse(ResponseConstant.RES_FAIL_CODE, "获取角色信息为空!");
//			}
//
//			List<EwsRole> ewsRoleList = new ArrayList<EwsRole>();
//			// 解析数据
//			JSONArray dataList = JSONObject.parseObject(allRoleStr).getJSONObject("info").getJSONArray("data");
//
//			for (int i = 0; i < dataList.size(); i++) {
//				EwsRole ewsRole = new EwsRole();
//				String id = dataList.getJSONObject(i).getString("uuid");
//				ewsRole.setId(id);
//
//				String roleCode = dataList.getJSONObject(i).getString("code");
//				ewsRole.setCode(roleCode);
//
//				String roleName = dataList.getJSONObject(i).getString("name");
//				ewsRole.setName(roleName);
//
//				String tenantId = dataList.getJSONObject(i).getString("tenantId");
//				if (StringUtils.isEmpty(tenantId)) {
//					ewsRole.setTenantId(ConstantCode.SYSTEM_OPERATION_LOGO);
//				}else {
//					ewsRole.setTenantId(tenantId);
//				}
//				ewsRoleList.add(ewsRole);
//			}
//
//			// 批量新增
//			if (ewsRoleList.size() > 0) {
//				roleService.addRoleBatch(ewsRoleList);
//				log.info("系统角色同步成功！");
//			}
//			// 角色或者部门同步成功后同步，工单当前处理人信息
//			hisWorkOrderCurrentHandlePersonSyn();
//			return new DbResponse(ResponseConstant.RES_SUCCESS_CODE, "系统角色同步成功！");
//		} catch (Exception e) {
//
//			log.info("系统角色信息同步异常" + e);
//			return new DbResponse(ResponseConstant.RES_FAIL_CODE, "系统角色信息同步异常" + e);
//		}
//
//	}
//	/**
//	 * TODO 同步部门信息
//	 * @author: victor_tang
//	 * @createtime: 2020/3/17 12:18
//	 * @param dept 1
//	 * @return: com.egoo.ews.service.utils.DBResponse
//	 */
//	@Override
//	public DbResponse deptDataSyn(String dept) {
//		log.info(dept);
//		// ERIP适配器地址
//		String csrUrl = eripAdapterUrl + "/ticket/adapter/v1/query";
//		// 设置请求header参数
//		Map<String, Object> headerMap = new HashMap<String, Object>(8);
//		headerMap.put("Content-Type", "application/json");
//		headerMap.put("erip-action", "query");
//		headerMap.put("erip-source", "ERIP");
//		headerMap.put("erip-target", "Tree");
//		// 设置body参数
//		JSONObject bodyJsonObject = new JSONObject();
//		bodyJsonObject.put("treeName","Dept");
//		bodyJsonObject.put("treeTargetNodeName","0");
//		try {
//			String bodyStr = bodyJsonObject.toJSONString();
//			// 请求ERIP接口
//			String result = HttpRequestUtil.sendPost(csrUrl, bodyStr, headerMap);
//			log.info("ERIP获取部门信息列表数据===》" + result);
//
//			if (StringUtils.isEmpty(result)) {
//				log.info("获取部门信息为空！");
//				return new DbResponse(ResponseConstant.RES_FAIL_CODE, "获取部门信息为空");
//			}
//			// 解析数据
//			JSONArray dataList = JSONObject.parseObject(result).getJSONObject("info").getJSONArray("data");
//			if (dataList==null || dataList.size()==0) {
//				log.info("获取部门信息为空！");
//				return new DbResponse(ResponseConstant.RES_FAIL_CODE, "获取部门信息为空");
//			}
//			// 处理部门信息
//			List<EwsDepartment> ewsDepartments = handleDeptInfo(dataList);
//
//			// 删除部门所有信息
//			ewsDepartmentDao.deleteAllDept();
//			// 同步部门数据至数据库
//			ewsDepartmentDao.insertBatch(ewsDepartments);
//
//			// 角色或者部门同步成功后同步，工单当前处理人信息
//			hisWorkOrderCurrentHandlePersonSyn();
//
//			return new DbResponse(ResponseConstant.RES_SUCCESS_CODE, "部门信息同步成功！");
//		} catch (Exception e) {
//			log.error("获取部门信息异常信息：" + e);
//			return new DbResponse(ResponseConstant.RES_FAIL_CODE, "获取部门信息异常：" + e);
//		}
//	}
//	/**
//	 * TODO 处理部门信息数据
//	 * @author: victor_tang
//	 * @createtime: 2020/3/17 12:31
//	 * @param dataList 1
//	 * @return: java.utils.List
//	 */
//	private List handleDeptInfo(JSONArray dataList){
//		List<EwsDepartment> ewsDepartments = new ArrayList<>();
//		for (int i = 0; i < dataList.size(); i++) {
//			EwsDepartment ewsDepartment = new EwsDepartment();
//			JSONObject jsonObject = dataList.getJSONObject(i);
//			ewsDepartment.setId(jsonObject.getString("code"));
//			ewsDepartment.setName(jsonObject.getString("name"));
//			ewsDepartment.setPid(jsonObject.getString("parent"));
//			String tenantId =jsonObject.getString("tenantId");
//			if (StringUtils.isEmpty(tenantId)) {
//				ewsDepartment.setTenantId(ConstantCode.SYSTEM_OPERATION_LOGO);
//			}else {
//				ewsDepartment.setTenantId(tenantId);
//			}
//			ewsDepartments.add(ewsDepartment);
//		}
//		return ewsDepartments;
//	}
//
//	/**
//	 * TODO 获取用户权限列表
//	 *
//	 * @param tenantId 1
//	 * @param userId   2
//	 * @author: victor_tang
//	 * @createtime: 2020/3/10 18:22
//	 * @return: com.egoo.ews.service.utils.DBResponse
//	 */
//	@Override
//	public DbResponse getUserPermissionsList(String tenantId, String userId) {
//		// ERIP适配器地址
//		String csrUrl = eripAdapterUrl + "/csr/adapter/v1/query/user/info" +
//				"?tenantId=" + tenantId + "&userCode=" + userId + "";
//		try {
//			// 请求ERIP接口
//			String result = HttpRequestUtil.getUrlContent(csrUrl);
////			log.info("获取用户权限列表getUserPermissionsList==》" + result);
//			// 解析数据
//			JSONObject jsonObject = JSONObject.parseObject(result).getJSONObject("data");
//			return new DbResponse(ResponseConstant.RES_SUCCESS_CODE, ResponseConstant.SELECT_SUCCESS_MSG, jsonObject);
//
//		} catch (Exception e) {
//			log.error("获取用户权限列表请求响应异常信息：" + e);
//			return new DbResponse(ResponseConstant.RES_FAIL_CODE, "获取用户权限列表请求响应异常信息：" + e);
//		}
//	}
//
//	/**
//	 * TODO 处理用户信息
//	 *
//	 * @param dataList 1
//	 * @author: victor_tang
//	 * @createtime: 2020/2/26 11:59
//	 * @return: java.utils.List<com.egoo.ews.service.vo.EwsUser>
//	 */
//	private List<EwsUser> handleUserInfo(JSONArray dataList) {
//		List<EwsUser> ewsUserList = new ArrayList<EwsUser>();
//		for (int i = 0; i < dataList.size(); i++) {
//			// 组装用户信息
//			EwsUser ewsUser = new EwsUser();
//			JSONObject jsonObject = dataList.getJSONObject(i);
//			String id = jsonObject.getString("userName");
//			ewsUser.setId(id);
//
//			String roleCode = jsonObject.getString("code");
//			ewsUser.setCode(roleCode);
//
//			String roleName = jsonObject.getString("name");
//			ewsUser.setName(roleName);
//
//			String userName = jsonObject.getString("userName");
//			ewsUser.setUserName(userName);
//
//			String phone = jsonObject.getString("phone");
//			ewsUser.setPhone(phone);
//
//			String deptId = jsonObject.getString("dept");
//			ewsUser.setDepartmentId(deptId);
//
//			String tenantId = jsonObject.getString("tenantID");
//			ewsUser.setTenantId(tenantId);
//			if (StringUtils.isEmpty(tenantId)) {
//				ewsUser.setTenantId(ConstantCode.SYSTEM_OPERATION_LOGO);
//			}else {
//				ewsUser.setTenantId(tenantId);
//			}
//			String isLeader = jsonObject.getString("responsible");
//			ewsUser.setIsLeader(isLeader);
//
//			ewsUserList.add(ewsUser);
//		}
//		return ewsUserList;
//	}
//
//	/**
//	 * TODO 获取系统所有角色信息
//	 *
//	 * @param
//	 * @author: victor_tang
//	 * @createtime: 2020/2/26 12:00
//	 * @return: java.lang.String
//	 */
//	@Override
//	public String getAllRole() {
//		// ERIP适配器地址
//		String csrUrl = eripAdapterUrl + "/ticket/adapter/v1/query";
//
//		// 设置请求header参数
//		Map<String, Object> headerMap = new HashMap<String, Object>(8);
//		headerMap.put("erip-action", "query");
//		headerMap.put("erip-source", "ticket");
//		headerMap.put("erip-target", "Role");
//		headerMap.put("Content-Type", "application/json");
//
//		String bodyStr = "{}";
//		try {
//			// 请求ERIP接口
//			String result = HttpRequestUtil.sendPost(csrUrl, bodyStr, headerMap);
//			log.info("ERIP获取角色列表getAllRole==》" + result);
//			return result;
//
//		} catch (IOException e) {
//			log.info("post请求响应异常信息：" + e);
//			return "";
//		}
//	}
//
//	/**
//	 * TODO 处理用户角色关系信息
//	 *
//	 * @param dataList 1
//	 * @author: victor_tang
//	 * @createtime: 2020/2/26 11:59
//	 * @return: java.utils.List<com.egoo.ews.service.vo.EwsUserRole>
//	 */
//	private List<EwsUserRole> handleUserRoleRelation(JSONArray dataList) {
//		List<EwsUserRole> ewsUserRoleList = new ArrayList<EwsUserRole>();
//		for (int i = 0; i < dataList.size(); i++) {
//			JSONArray roleList = dataList.getJSONObject(i).getJSONArray("roles");
//			for (int j = 0; j < roleList.size(); j++) {
//				// 组装用户信息
//				EwsUserRole ewsUserRole = new EwsUserRole();
//
//				JSONObject userObj = dataList.getJSONObject(i);
//				if (!userObj.isEmpty()) {
//					ewsUserRole.setUserId(userObj.getString("userName"));
//				}
//
//				JSONObject roleObj = roleList.getJSONObject(j);
//				if (!roleObj.isEmpty()) {
//					ewsUserRole.setRoleId(roleObj.getString("uuid"));
//				}
//
//				if (ewsUserRole.getRoleId() != null && ewsUserRole.getUserId() != null) {
//					ewsUserRoleList.add(ewsUserRole);
//				}
//
//			}
//
//		}
//		return ewsUserRoleList;
//	}
//
//	/**
//	 * TODO 获取系统所有用户信息
//	 *
//	 * @param
//	 * @author: victor_tang
//	 * @createtime: 2020/2/26 12:00
//	 * @return: java.lang.String
//	 */
//	@Override
//	public String getAllUser() {
//		// ERIP适配器地址
//		String csrUrl = eripAdapterUrl + "/ticket/adapter/v1/query";
//
//		// 设置请求header参数
//		Map<String, Object> headerMap = new HashMap<String, Object>(8);
//		headerMap.put("erip-action", "query");
//		headerMap.put("erip-source", "ticket");
//		headerMap.put("erip-target", "UserRole");
//		headerMap.put("Content-Type", "application/json");
//
//		String bodyStr = "{}";
//		try {
//			// 请求ERIP接口
//			String result = HttpRequestUtil.sendPost(csrUrl, bodyStr, headerMap);
//			log.info("ERIP获取用户角色权限数据getAllUser===》" + result);
//			return result;
//		} catch (IOException e) {
//			log.info("post请求响应异常信息：" + e);
//			return "";
//		}
//	}
//
////	/**
////	 * TODO 获取产品型号信息
////	 * @author: victor_tang
////	 * @createtime: 2020/3/17 11:46
////	 * @param productModelInfoDto 1
////	 * @return: com.egoo.ews.service.utils.DBResponse
////	 */
////	@Override
////	public DbResponse getProductModelList(ProductModelInfoDto productModelInfoDto) {
////		// ERIP适配器地址
////		String CSR_URL = ERIP_ADAPTER_URL + "/ticket/adapter/v1/query";
////		// 设置请求header参数
////		Map<String, Object> headerMap = new HashMap<String, Object>(8);
////		headerMap.put("Content-Type", "application/json");
////		headerMap.put("erip-action", "query");
////		headerMap.put("erip-source", "ERIP");
////		headerMap.put("erip-target", "Tree");
////		// 设置body参数
////		JSONObject bodyJsonObject = new JSONObject();
////		bodyJsonObject.put("treeName","EWSProductModelInfo");
////		bodyJsonObject.put("treeTargetNodeName","0");
////		JSONObject filterJsonObject=new JSONObject();
////		if (StringUtils.isNotBlank(productModelInfoDto.getModelCode())) {
////			filterJsonObject.put("modelCode", productModelInfoDto.getModelCode());
////		}
////		if (StringUtils.isNotBlank(productModelInfoDto.getCompanyId())) {
////			filterJsonObject.put("companyID", productModelInfoDto.getCompanyId());
////		}
////		if (StringUtils.isNotBlank(productModelInfoDto.getCompanyName())) {
////			filterJsonObject.put("companyName", productModelInfoDto.getCompanyName());
////		}
////		if (StringUtils.isNotBlank(productModelInfoDto.getBelongToClassify())) {
////			filterJsonObject.put("classify", productModelInfoDto.getBelongToClassify());
////		}
////		bodyJsonObject.put("filters",filterJsonObject);
////		try {
////			String bodyStr = bodyJsonObject.toJSONString();
////			// 请求ERIP接口
////			String result = HttpRequestUtil.sendPost(CSR_URL, bodyStr, headerMap);
//////			log.info("ERIP获取产品型号信息列表数据getProductModelList===》" + result);
////			// 解析产品型号信息
////			if (StringUtils.isEmpty(result)) {
////				log.info("获取产品型号信息为空！");
////				return new DbResponse(ResponseConstant.RES_FAIL_CODE, "获取产品型号信息为空");
////			}
////
////			// 解析数据
////			JSONArray dataList = JSONObject.parseObject(result).getJSONObject("info").getJSONArray("data");
////			return new DbResponse(ResponseConstant.RES_SUCCESS_CODE, ResponseConstant.SELECT_SUCCESS_MSG,dataList );
////		} catch (Exception e) {
////			log.info("获取产品型号信息异常信息：" + e);
////			return new DbResponse(ResponseConstant.RES_FAIL_CODE, "获取产品型号信息异常：" + e);
////		}
////	}
//	/**
//	 * TODO 获取业务分类信息列表
//	 * @author: victor_tang
//	 * @createtime: 2020/3/17 12:56
//	 * @param
//	 * @return: com.egoo.ews.service.utils.DBResponse
//	 */
//	@Override
//	public DbResponse getBusinesTypeList() {
//		// ERIP适配器地址
//		String csrUrl = eripAdapterUrl + "/ticket/adapter/v1/query";
//		// 设置请求header参数
//		Map<String, Object> headerMap = new HashMap<String, Object>(8);
//		headerMap.put("Content-Type", "application/json");
//		headerMap.put("erip-action", "query");
//		headerMap.put("erip-source", "ERIP");
//		headerMap.put("erip-target", "Tree");
//		// 设置body参数
//		JSONObject bodyJsonObject = new JSONObject();
//		bodyJsonObject.put("treeName","EWSBusinessType");
//		bodyJsonObject.put("treeTargetNodeName","0");
//		try {
//			String bodyStr = bodyJsonObject.toJSONString();
//			// 请求ERIP接口
//			String result = HttpRequestUtil.sendPost(csrUrl, bodyStr, headerMap);
//			// 解析业务分类信息
//			if (StringUtils.isEmpty(result)) {
//				log.info("获取业务分类信息为空！");
//				return new DbResponse(ResponseConstant.RES_FAIL_CODE, "获取业务分类信息为空");
//			}
//
//			// 解析数据
//			JSONArray dataList = JSONObject.parseObject(result).getJSONObject("info").getJSONArray("data");
//
//			JSONArray jsondataList = treeDataHandleUtil.transJsonArrayToTreeData(dataList, "parent",
//					"busiType", "code", "children");
//			return new DbResponse(ResponseConstant.RES_SUCCESS_CODE,
//					ResponseConstant.SELECT_SUCCESS_MSG,jsondataList);
//		} catch (Exception e) {
//			log.info("获取业务分类信息异常信息：" + e);
//			return new DbResponse(ResponseConstant.RES_FAIL_CODE, "获取业务分类信息异常：" + e);
//		}
//	}
//
//	/**
//	 * TODO 角色变动后，同步更新历史工单当前处理人
//	 *
//	 * @param
//	 * @author: victor_tang
//	 * @createtime: 2020/2/26 11:59
//	 * @return: com.egoo.ews.service.utils.DBResponse
//	 */
//	@Override
//	public DbResponse hisWorkOrderCurrentHandlePersonSyn() {
//		// 查询历史当前工单类型节点id列表
//		List<WorkOrder> workOrderList =
//				workOrderDao.selectWorkOrderTypeNodeIds();
//
//		// 根据工单类型节点获取新的节点处理人信息
//		for (WorkOrder workOrder : workOrderList) {
//			Long currentWorkOrderNodeId = workOrder.getCurrentWorkOrderNodeId();
//			if (currentWorkOrderNodeId == null) {
//				continue;
//			}
//			WorkOrderTypeNodeVo workOrderTypeNodeVo = workOrderTypeNodeDao
//					.getNodeByWorkOrderNodeId(currentWorkOrderNodeId);
//			if (workOrderTypeNodeVo == null) {
//				continue;
//			}
//			WorkOrder updateWorkOrder =
//					getworkOrderTypeNodeIdHandlePerson(workOrderTypeNodeVo.getContent(),workOrder.getTenantId());
//			if (updateWorkOrder == null) {
//				continue;
//			}
//			updateWorkOrder.setCurrentWorkOrderNodeId(currentWorkOrderNodeId);
//
//			// 根据当前工单类型节点id，批量更新当前工单处理人信息
//			workOrderDao.updateHandlePersonInfoByNodeId(updateWorkOrder);
//		}
//		log.info("角色变动后，同步更新历史工单当前处理人成功！");
//		return new DbResponse(ResponseConstant.RES_SUCCESS_CODE, "历史工单当前工单处理人更新成功;");
//	}
//
//	/**
//	 * TODO 获取工单类型节点新的处理人信息
//	 *
//	 * @param content 1
//	 * @author: victor_tang
//	 * @createtime: 2020/2/26 11:59
//	 * @return: com.egoo.ews.service.vo.WorkOrder
//	 */
//	private WorkOrder getworkOrderTypeNodeIdHandlePerson(JSONObject content,
//														 String tenantId) {
//		if (content == null) {
//			return null;
//		}
//		String assigneetype = content.getString("assigneetype");
//		// 获取节点处理角色列表
//		JSONArray assigneeJsonArray = content.getJSONArray("assignee");
//		if (assigneeJsonArray == null) {
//			return null;
//		}
//		if (ConstantCode.UserRoleDeptType.USER.equals(assigneetype)) {
//			return null;
//		}
//		// 处理人类型为部门和用户时，需要更新工单当前处理人信息
//		else if (ConstantCode.UserRoleDeptType.ROLE.equals(assigneetype)
//		||ConstantCode.UserRoleDeptType.DEPT.equals(assigneetype)) {
//
//			List<String> typeIds = JSONObject.parseArray(assigneeJsonArray.toJSONString(), String.class);
//			List<EwsUser> ewsUsers = userService.getUserListByTypeAndTypeIds(assigneetype, typeIds,
//					tenantId);
//			List<String> userIdsList = new ArrayList<>();
//			List<String> userNamesList = new ArrayList<>();
//			for (EwsUser ewsUser : ewsUsers) {
//				userIdsList.add(ewsUser.getId());
//				userNamesList.add(ewsUser.getName());
//			}
//			WorkOrder workOrder = new WorkOrder();
//			workOrder.setCurrentHandlerId(StringUtils.join(userIdsList,","));
//			workOrder.setCurrentHandlerName(StringUtils.join(userNamesList,","));
//			return workOrder;
//		}
//		return null;
//	}
//	/**
//	 * TODO 获取短信模板信息
//	 * @author: victor_tang
//	 * @createtime: 2020/3/22 16:03
//	 * @param
//	 * @return: com.alibaba.fastjson.JSONArray
//	 */
//	@Override
//	public JSONArray getTemplate() {
//		JSONObject jsonObject = new JSONObject();
//		jsonObject.put("treeName", "WorkOrderCallBack");
//		jsonObject.put("treeTargetNodeName", 0);
//		String bodyStr = jsonObject.toJSONString();
//		HashMap<String, Object> hashMap = new HashMap<String, Object>(8);
//		hashMap.put("Content-Type", "application/json");
//		hashMap.put("erip-action", "query");
//		hashMap.put("erip-source", "ERIP");
//		hashMap.put("erip-target", "Tree");
//
//		// ERIP适配器地址
//		String csrUrl = eripAdapterUrl + "/ticket/adapter/v1/query";
//
//		// 设置请求header参数
//		try {
//			// 请求ERIP接口
//			String result = HttpRequestUtil.sendPost(csrUrl, bodyStr, hashMap);
//			log.info("erip获取短信模板信息为："+result);
//			// 解析数据
//			JSONArray dataJsonArray = JSONObject.parseObject(result).getJSONObject("info").getJSONArray("data");
//			if (dataJsonArray == null || dataJsonArray.isEmpty()) {
//				return null;
//			}
//			return dataJsonArray;
//		} catch (IOException e) {
//			log.info("获取短信模板异常：" + e);
//			return null;
//		}
//
//	}
//	/**
//	 * TODO 根据过滤条件和获取短信模板
//	 * @author: victor_tang
//	 * @createtime: 2020/3/31 17:29
//	 * @param filterCondition 1
//	 * @return: com.alibaba.fastjson.JSONArray
//	 */
//	@Override
//	public JSONArray getTemplateByFilterCondition(JSONObject filterCondition) {
//		// 获取内管配置的短信模板
//		JSONArray template = getTemplate();
//		if (template==null) {
//			return null;
//		}
//		// 根据短信模板名称进行过滤
//		String filterName = filterCondition.getString("name");
//		if (StringUtils.isEmpty(filterName)) {
//			return template;
//		}
//		JSONArray templateJsonArray = new JSONArray();
//		for (int i = 0; i < template.size(); i++) {
//			if (filterName.equals(template.getJSONObject(i).getString("name"))) {
//				templateJsonArray.add(template.getJSONObject(i));
//			}
//		}
//		return templateJsonArray;
//	}
//
//
//	/**
//	 * TODO 获取短信模板信息(催办)
//	 *
//	 * @param bodyStr 1
//	 * @author: victor_tang
//	 * @createtime: 2020/2/26 12:24
//	 * @return: com.alibaba.fastjson.JSONArray
//	 */
//	@Override
//	public JSONArray getMsgTemplate(String bodyStr) {
//		// ERIP适配器地址
//		String csrUrl = eripAdapterUrl + ":8024/workworder/adapter/v1/resource/query";
//
//		HashMap<String, Object> hashMap = new HashMap<String, Object>(4);
//		hashMap.put("Content-Type", "application/json");
//		hashMap.put("erip-target", "MsgTemplate");
//		// 设置请求header参数
//		try {
//			// 请求ERIP接口
//			String result = HttpRequestUtil.sendPost(csrUrl, bodyStr, hashMap);
//
//			// 解析数据
//			JSONArray dataJsonArray = JSONObject.parseObject(result).getJSONObject("info").getJSONArray("data");
//			if (dataJsonArray == null || dataJsonArray.isEmpty()) {
//				return null;
//			}
//			return dataJsonArray;
//		} catch (IOException e) {
//			log.info("获取短信模板：" + e);
//			return null;
//		}
//
//	}
//
//
//
//	/**
//	 * TODO 发送短信
//	 * @author: victor_tang
//	 * @createtime: 2020/3/18 20:46
//	 * @param jsonObject 1
//	 * @return: com.egoo.ews.service.utils.DBResponse
//	 */
//	@Override
//	public DbResponse sendMsg(JSONObject jsonObject) {
//		/**
//		 * smsType 短信来源
//		 * Chintsms：短信内容，请以urlencode编码格式传输.内包含PhoneNumber和content参数
//		 */
//		String phoneNumber = jsonObject.getString("phoneNumber");
//		String content = jsonObject.getString("content");
//		String chintsms = "PhoneNumber="+phoneNumber+"&content="+content;
//		try {
//			chintsms = URLEncoder.encode(chintsms, "UTF-8");
//			log.info("解码前的发送短信参数为："+chintsms);
//			String msg = URLDecoder.decode(chintsms,"UTF-8");
//			log.info("解码后的发送短信参数为："+msg);
//			String msgUrl = msgSendUrl +"smsType=weixun&chintsms="+chintsms;
//
//			log.info("发送短信请求URL："+ msgUrl);
//			// 请求ERIP接口,发送短信
//			String result = HttpRequestUtil.getUrlContent(msgUrl);
//			log.info("发送短信返回数据："+ result);
//
//			// 记录短信发送日志
//			recordMsgLog(jsonObject);
//
//			return new DbResponse(ResponseConstant.RES_SUCCESS_CODE,"发送成功！");
//		} catch (Exception e) {
//			log.info("发送短信异常：" + e);
//			return new DbResponse(ResponseConstant.RES_FAIL_CODE,"发送短信异常：" + e);
//		}
//	}
//
//	/**
//	 * @Author: Donny_dong
//	 * @Description: 记录短信log
//	 * @Param:
//	 * @return:
//	 * @Date: 2020/4/10
//	 */
//	private void recordMsgLog(JSONObject jsonObject) {
//		String workOrderId = jsonObject.getString("workOrderId");
//		String userId = jsonObject.getString("userId");
//		String phoneNumber = jsonObject.getString("phoneNumber");
//		String content = jsonObject.getString("content");
//		String msgTypeName = jsonObject.getString("msgTypeName");
//		String tenantId = jsonObject.getString("tenantId");
//		WorkOrderLog workOrderLog = new WorkOrderLog();
//		if (StringUtils.isNotBlank(workOrderId)){
//			workOrderLog.setWorkOrderId(workOrderId);
//		}
//		workOrderLog.setLogCreaterId(userId);
//		EwsUser ewsUser = ewsUserDao.selectById(userId);
//		EwsDepartmentVo ewsDepartmentVo = null;
//		if (ewsUser != null) {
//			ewsDepartmentVo = ewsDepartmentDao.selectByPrimaryKey(ewsUser.getDepartmentId());
//			workOrderLog.setLogCreaterName(ewsUser.getName());
//			workOrderLog.setLogCreaterDept(ewsDepartmentVo.getName());
//		} else {
//			workOrderLog.setLogCreaterName(ConstantCode.SYSTEM_OPERATION_LOGO);
//			workOrderLog.setLogCreaterDept(ConstantCode.SYSTEM_OPERATION_LOGO);
//		}
//		workOrderLog.setLogCreateTime(new Date(System.currentTimeMillis()));
//		workOrderLog.setContent(content);
//		workOrderLog.setLogType(ConstantCode.WorkOrderLogType.MSG_SEND_CODE);
//		workOrderLog.setTenantId(tenantId);
//		log.info("短信发送日志记录参数：{}"+workOrderLog);
//		workOrderLogService.addSave(workOrderLog);
//	}
//
//	public static void main(String[] args) {
//		JSONObject jsonObject = new JSONObject();
//		jsonObject.put("phoneNumber","13201492319");
//		jsonObject.put("content","【正泰集团】您有协办工单");
//
//	}
//	/**
//	 * TODO 发送系统消息
//	 * @author: victor_tang
//	 * @createtime: 2020/3/22 16:34
//	 * @param systemMsgDto 1
//	 * @return: java.lang.String
//	 */
//	@Override
//	public DbResponse sendSystemMsg(SystemMsgDto systemMsgDto) {
////		1. title(string): 非必填，消息标题，默认为空
////		2. content(string): 消息内容
////		3. message_type(string): 非必填，消息类型，默认为normal。例：普通消息(normal), 公告(announce)
////		4. target_type(string): 消息发送类型，可选项为：`user`、`group`、`global`，分别为发送给用户的消息，发送给群组的消息和发送给全体的消息。
////		5. targets(array of String): 发送类型为`user`和`group`时可用，标示要接收的群体。
////		6. sender_id(String): 消息发送者ID
//		// ERIP适配器地址
//		String csrUrl = eripAdapterUrl + "/messages";
//
//		HashMap<String, Object> hashMap = new HashMap<String, Object>(2);
//		hashMap.put("Content-Type", "application/json");
//
//		JSONObject body = new JSONObject();
//		body.put("title",systemMsgDto.getTitle());
//		body.put("content",systemMsgDto.getContent());
//		body.put("message_type","normal");
//		body.put("target_type", "user");
//		body.put("targets", systemMsgDto.getTargets());
//		body.put("sender_id", systemMsgDto.getSenderId());
//		body.put("remark", systemMsgDto.getRemark());
//		String bodyStr = body.toJSONString();
//		try {
//			// 请求ERIP接口
//			String result = HttpRequestUtil.sendPost(csrUrl, bodyStr, hashMap);
//			log.info("发送系统消息响应:" + result);
//			// 解析数据
//			Integer code = JSONObject.parseObject(result).getInteger("code");
//			if (ResponseConstant.RES_SUCCESS_CODE != code) {
//				return new DbResponse(ResponseConstant.RES_FAIL_CODE, "发送失败！");
//			}
//			return new DbResponse(ResponseConstant.RES_SUCCESS_CODE,"发送成功！");
//		} catch (Exception e) {
//			log.info("发送异常：" + e);
//			return new DbResponse(ResponseConstant.RES_FAIL_CODE, "发送异常：" + e);
//		}
//	}
//
//	/**
//	 * TODO 获取在线客服工作时间段
//	 *
//	 * @param
//	 * @author: victor_tang
//	 * @createtime: 2019/9/27 23:47
//	 * @return: java.utils.List
//	 */
//	@Override
//	public List<String> getWorkTimeList() {
//		// ERIP适配器地址
//		String csrUrl = eripAdapterUrl + ":8024/workworder/adapter/v1/resource/query";
//		// 设置请求header参数
//		Map<String, Object> headerMap = new HashMap<String, Object>(2);
//		headerMap.put("erip-target", "CfgParamItem");
//
//		String bodyStr = "{\r\n" + "   \"Code\": \"ONLINE_BUSINESS\",\r\n" + "   \"filterType\":\"6\"\r\n" + "}";
//		try {
//			// 请求ERIP接口，获取工作时间数据
//			String result = HttpRequestUtil.sendPost(csrUrl, bodyStr, headerMap);
//			return handleWorkTimeData(result);
//		} catch (IOException e) {
//			log.info("获取在线客户工作时间段异常：" + e);
//			return null;
//		}
//
//	}
//
//	/**
//	 * TODO 处理作息工作时间数据
//	 *
//	 * @param result
//	 * @return
//	 */
//	private List<String> handleWorkTimeData(String result) {
//		if (StringUtils.isEmpty(result)) {
//			return null;
//		}
//		JSONArray jsonArray = JSONObject.parseObject(result).getJSONObject("info").getJSONArray("data");
//		if (jsonArray == null || jsonArray.isEmpty()) {
//			return null;
//		}
//
//		List<String> workTimeList = new ArrayList<>();
//		for (int i = 0; i < jsonArray.size(); i++) {
//			String codeString = jsonArray.getJSONObject(i).getString("code");
//			if ("ONLINE_BUSINESS_BEGIN".equals(codeString)) {
//				workTimeList.add(jsonArray.getJSONObject(i).getString("value"));
//			}
//		}
//		for (int i = 0; i < jsonArray.size(); i++) {
//			String codeString = jsonArray.getJSONObject(i).getString("code");
//			if ("ONLINE_BUSINESS_END".equals(codeString)) {
//				workTimeList.add(jsonArray.getJSONObject(i).getString("value"));
//			}
//		}
//
//		return workTimeList;
//
//	}
//
//	/**
//	 * TODO 调取工作台记录操作日志接口
//	 * @author: victor_tang
//	 * @createtime: 2020/5/6 11:49
//	 * @param sysOptLogDto 1
//	 * @return: com.egoo.ews.service.utils.common.DbResponse
//	 */
//	@Override
//	public DbResponse recordSysOptLog(SysOptLogDto sysOptLogDto) {
//		if (sysOptLogDto==null) {
//			log.error("操作日志参数不能为空！");
//			return null;
//		}
//		EwsUser ewsUser = ewsUserDao.selectById(sysOptLogDto.getUserId());
//		if (ewsUser!=null) {
//			sysOptLogDto.setUserName(ewsUser.getName());
//			sysOptLogDto.setAgentId(ewsUser.getId());
//		}
//		sysOptLogDto.setOptTime(sdfTime.format(new Date()));
//		// dbsrv服务地址
//		String dbSrvUrl = dbsrvUrl + "/dbsrv/v1/history/operaterecord/";
//		// 设置body
//		String bodyStr = JSON.toJSONString(sysOptLogDto);
//		try {
//			log.info("请求dbsrv日志操作接口参数为："+sysOptLogDto);
//			// 记录系统操作日志至工作台
//			String result = HttpRequestUtil.sendPost(dbSrvUrl, bodyStr, null);
//			log.info("请求工作台系统操作记录接口响应为："+result);
//			return new DbResponse(ResponseConstant.RES_SUCCESS_CODE,
//					"操作日志记录成功！");
//		} catch (IOException e) {
//			log.info("记录系统操作日志至工作台异常：" + e);
//			return new DbResponse(ResponseConstant.RES_FAIL_CODE,"记录系统操作日志至工作台异常：" + e);
//		}
//	}
//
//	/**
//	 * @Author: Donny_dong
//	 * @Description: 调用转出接口
//	 * @Param:
//	 * @return:
//	 * @Date: 2020/5/11
//	 */
//	@Override
//	public String externalWorkOrderFlowOut() {
//
//		return null;
//	}
//}
